package Day005_API02.demo05_String类常用方法;

/*
    String类常用方法:

 */

import java.util.Arrays;

public class Test {
    public static void main(String[] args) {
        //创建String类对象
        String str1 = "abcdabcd";
        String str2 = "ABCDABCD";

        // 1. length()
        int len = str1.length();
        System.out.println("字符串长度:" + len); // 8

        // 2. charAt(int index) 取出对应索引的字符
        char c = str1.charAt(1);
        System.out.println(c); // b

        // 3. equals(s)
        boolean b1 = str2.equals(str1);
        System.out.println(b1); // false

        // 4. equalsIgnoreCase(s) 忽略大小写
        boolean b2 = str2.equalsIgnoreCase(str1);
        System.out.println(b2); // true

        // 5. concat(s) 拼接两个字符串
        System.out.println(str1.concat(str2)); // abcdABCD

        // 6. contains(s) 是否包含
        boolean b3 =  str1.contains("bcd");
        System.out.println(b3); // true
        boolean b4 =  str1.contains("bdc");
        System.out.println(b4); // false

        // 7. endsWith(s) 判断是否以s字符串结尾
        boolean b5 = str1.endsWith("cd");
        System.out.println(b5); // true
        boolean b6 = str1.endsWith("dc");
        System.out.println(b6); // false

        // 8. startsWith(s) 判断是否以s字符串开头
        boolean b7 = str1.startsWith("abc");
        System.out.println(b5); // true
        boolean b8 = str1.startsWith("bc");
        System.out.println(b6); // false

        // 9. indexOf(char c) 获取指定字符,在字符串的第一次出现的索引位置,找不到返回-1
        //    indexOf(int c) 传入97--a
        //    indexOf(String s) 获取指定字符chuan,在字符串的第一次出现的索引位置,找不到返回-1
        int i = str1.indexOf('b');
        System.out.println(i); // 1
        int i1 = str1.indexOf('e');
        System.out.println(i1); // -1
        int i2 = str1.indexOf(97);
        System.out.println(i2); // 0
        int i3 = str1.indexOf("cd");
        System.out.println(i3); // 2

        // 10. lastIndexOf(int c) 获取指定字符,在字符串的最后一次出现的索引位置,找不到返回-1
        //     lastIndexOf(String s) 获取指定字符chuan,在字符串的最后一次出现的索引位置,找不到返回-1
        System.out.println(str1.lastIndexOf('c')); // 6
        System.out.println(str1.lastIndexOf("abc")); // 4

        // 11. replace(str1,str2) 用新内容替换就内容,返回一个新的字符串
        String newStr = str1.replace("c","a"); // abadabad
        System.out.println(newStr);

        // 12. substring(index) 从指定索引开始截取到结尾,返回截取的字符串
        //     substring(beginIndex,endIndex) 从指定索引开始截取到指定endIndex,返回截取的字符串 (含头不含尾)
        System.out.println(str1.substring(1, 4)); // bcd (含头不含尾)

        // 13. toCharArray() 字符串转换为字符数组
        char[] chs = str1.toCharArray();
        System.out.println(chs); // abcdabcd
        System.out.println(Arrays.toString(chs)); // [a, b, c, d, a, b, c, d]
        System.out.println(chs.toString()); // [C@677327b6

        // 14. getBytes() 字符串转换为字节数组
        byte[] by = str1.getBytes();
        System.out.println(by); // [B@1540e19d
        System.out.println(Arrays.toString(by)); // [97, 98, 99, 100, 97, 98, 99, 100]


        // 15. toLowerCase() 全变小写
        System.out.println(str2.toLowerCase()); // abcdabcd

        // 16. toUpperCase() 全变大写
        System.out.println(str1.toUpperCase()); // ABCDABCD

        // 17. trim() 移除尾部空格
        String str3 = "abc  ";
        System.out.println(str3.trim());

        // 18. split(分割规则) 根据规则的匹配,切割字符串
        String str4 = "itheima-java-php";
        String[] arrstr = str4.split("-");
        System.out.println(arrstr); //[Ljava.lang.String;@677327b6
        System.out.println(Arrays.toString(arrstr)); //[itheima, java, php]


    }
}
